﻿
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.Serialization;

namespace M2B.GestionEntretiens.POCOS
{
    /// <summary>
    /// Cette Classe décrit un candidat
    /// </summary>
    /// <remarks>
    /// Informations de la classe : 
    /// <list type="bullet">
    /// <item name="authors">Auteur : M2B : Bilel / Maher SAMMARI</item>
    /// <item name="creation date">Date de création : 01/04/2014</item>
    /// <item name="last modification">Date de dernière modification : 01/04/2014</item>
    /// </list>
    /// </remarks>

    [DataContract(IsReference = true)]
    public class Candidat
    {

        #region Properties
        /// <summary>
        /// Identificateur
        /// </summary>
        [DataMember]
        public int CandidatId { get; set; }
        /// <summary>
        /// Nom 
        /// </summary>
        [DataMember]
        [Required]
        public string Nom { get; set; }
        /// <summary>
        /// Prénon
        /// </summary>
        [DataMember]
        [Required]
        [DisplayName("Prénom")]
        public string Prenom { get; set; }
        /// <summary>
        /// Statut
        /// </summary>
        [DataMember]
        public string Statut { get; set; }
        /// <summary>
        /// Nméro de la carte d'identité 
        /// </summary>
        [DataMember]
        [Required]
        [DisplayName("Identifiant")]
        public int NCIN
        {
            get;
            set;
        }
        /// <summary>
        /// Pays
        /// </summary>
        [DataMember]
        public string Pays
        {
            get;
            set;
        }
        /// <summary>
        /// Langue
        /// </summary>
        [DataMember]
        public string Langue
        {
            get;
            set;
        }
        /// <summary>
        /// Le nombre des années d'expérinces
        /// </summary>
        [DataMember]
        public int Experience
        {
            get;
            set;
        }
        /// <summary>
        /// La fromation 
        /// </summary>
        [DataMember]
        public string Formation
        {
            get;
            set;
        }
        /// <summary>
        /// Profil (Exemple dotNet, Java, Php,..)
        /// </summary>
        [DataMember]
        public string Profil
        {
            get;
            set;
        }
        /// <summary>
        /// Date création
        /// </summary>
        [DataMember]
        public DateTime? DateCreation
        {
            get;
            set;
        }
        /// <summary>
        /// Date modification
        /// </summary>
        [DataMember]
        public DateTime? DateModification
        {
            get;
            set;
        }
        /// <summary>
        /// Adresse mail
        /// </summary>
        [DataMember]
        [DataType(DataType.EmailAddress)]
        [DisplayName("Adresse mail")]
        [MaxLength(50)]
        [RegularExpression(@"[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}", ErrorMessage = "Email incorrect")]
        public string AdresseMail
        {
            get;
            set;
        }
        /// <summary>
        /// Numéro du téléphone
        /// </summary>
        [DataMember]
        [DisplayName("Téléphone")]
        public string Telephone
        {
            get;
            set;
        }
        /// <summary>
        /// Adresse personelle
        /// </summary>
        [DataMember]
        public string Adresse
        {
            get;
            set;
        }
        /// <summary>
        /// Champ pour autres informations
        /// </summary>
        [DataMember]
        public string Autre
        {
            get;
            set;
        }
        /// <summary>
        /// Commentaire
        /// </summary>
        [DataMember]
        public string Commentaire { get; set; }
        #endregion


        #region Constructeurs
        /// <summary>
        /// Constructeur par défaut
        /// </summary>
        public Candidat()
        {
           
        }
        #endregion
    }
}
